package main

import "fmt"

/// 定义一个接口 Simpler，它有一个 Get() 方法和一个 Set()，Get() 返回一个整型值，Set() 有一个整型参数。
// 创建一个结构体类型 Simple 实现这个接口。

// 接着定一个函数，它有一个 Simpler 类型的参数，调用参数的 Get() 和 Set() 方法。在 main 函数里调用这个函数，看看它是否可以正确运行。

type Simpler interface {
	Get() int
	Set(int)
}

func upgrade(s Simpler, f int) {
	s.Set(s.Get() + f)
}

type Student struct {
	name  string
	grade int
}

func (stu *Student) Get() int {
	return stu.grade
}

func (stu *Student) Set(d int) {
	stu.grade = d
}

func main() {
	stu := new(Student)
	stu.name = "Hanmeimei"
	stu.grade = 7
	upgrade(stu, 2)

	fmt.Println(stu)

}
